'use strict'

const Controller = require('egg').Controller
const axios = require('axios')
// 配置信息
const clientID = '7c3f4f6dcdd01bd2f9c0'
const clientSecret = 'd66f3c55d1118addac72032ff3744bad9b796c40'

class OauthController extends Controller {
	async auth() {
		const { ctx, app } = this
		// 1. code 临时身份id
		const requestToken = ctx.request.query.code
		// 2. 请求github 提供的一个授权接口
		const tokenResponse = await axios({
			method: 'post',
			url:
				'https://github.com/login/oauth/access_token?' +
				`client_id=${clientID}&` +
				`client_secret=${clientSecret}&` +
				`code=${requestToken}`,
			headers: {
				accept: 'application/json'
			}
		})

		// 3. 处理token, 请求用户信息，处理用户信息，跳转到 前端页面
		const accessToken = tokenResponse.data.access_token

		const result = await axios({
			method: 'get',
			url: `https://api.github.com/user`,
			headers: {
				accept: 'application/json',
				Authorization: `token ${accessToken}`
			}
		})
		// 用户名字（github中的账号名字）
		const name = result.data.login
		// 头像
		const avatar = result.data.avatar_url
		// ctx.body = {
		// 	name,
		// 	avatar
		// }
		// console.log(name, avatar)

		// 一个遗留问题，如何跳转回到vue服务下的前端页面
		ctx.response.redirect(`http://localhost:8080/#/blogs?name=${name}`)
	}

	async redirectAuth() {
		const { ctx, app } = this
		// console.log('我是测试跳转接口')
		ctx.body = '我是测试跳转接口'
		// ctx.response.redirect(`https://www.baidu.com`)
		// ctx.response.redirect(`/public/index.html`)
		// ctx.response.redirect(`https://www.baidu.com`)
	}
}

module.exports = OauthController
